* Step 1: DependencyPairs WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
sel(0(),cons(X,Z)) -> X
sel(s(X),cons(Y,Z)) -> sel(X,activate(Z))
- Signature:
{activate/1,first/2,from/1,sel/2} / {0/0,cons/2,n__first/2,n__from/1,nil/0,s/1}
- Obligation:
runtime complexity wrt. defined symbols {activate,first,from,sel} and constructors {0,cons,n__first,n__from
,nil,s}
+ Applied Processor:
DependencyPairs {dpKind_ = DT}
+ Details:
We add the following weak dependency pairs:
Strict DPs
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
Weak DPs
and mark the set of starting terms.
* Step 2: UsableRules WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Strict TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
sel(0(),cons(X,Z)) -> X
sel(s(X),cons(Y,Z)) -> sel(X,activate(Z))
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
UsableRules
+ Details:
We replace rewrite rules by usable rules:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
* Step 3: PredecessorEstimation WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Strict TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
PredecessorEstimation {onSelection = all simple predecessor estimation selector}
+ Details:
We estimate the number of application of
{5}
by application of
Pre({5}) = {1,2,4,6,7,8,9}.
Here rules are labelled as follows:
1: activate#(X) -> c_1(X)
2: activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
3: activate#(n__from(X)) -> c_3(from#(X))
4: first#(X1,X2) -> c_4(X1,X2)
5: first#(0(),Z) -> c_5()
6: first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
7: from#(X) -> c_7(X,X)
8: from#(X) -> c_8(X)
9: sel#(0(),cons(X,Z)) -> c_9(X)
10: sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
* Step 4: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Strict TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
first#(0(),Z) -> c_5()
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [0]
p(cons) = [1] x2 + [3]
p(first) = [1] x1 + [1] x2 + [0]
p(from) = [1] x1 + [0]
p(n__first) = [1] x1 + [1] x2 + [7]
p(n__from) = [1] x1 + [0]
p(nil) = [0]
p(s) = [1] x1 + [0]
p(sel) = [0]
p(activate#) = [0]
p(first#) = [0]
p(from#) = [0]
p(sel#) = [1] x2 + [0]
p(c_1) = [0]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [0]
p(c_4) = [0]
p(c_5) = [0]
p(c_6) = [1] x3 + [0]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [0]
p(c_10) = [1] x1 + [0]
Following rules are strictly oriented:
sel#(0(),cons(X,Z)) = [1] Z + [3]
> [0]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [1] Z + [3]
> [1] Z + [0]
= c_10(sel#(X,activate(Z)))
activate(n__first(X1,X2)) = [1] X1 + [1] X2 + [7]
> [1] X1 + [1] X2 + [0]
= first(X1,X2)
Following rules are (at-least) weakly oriented:
activate#(X) = [0]
>= [0]
= c_1(X)
activate#(n__first(X1,X2)) = [0]
>= [0]
= c_2(first#(X1,X2))
activate#(n__from(X)) = [0]
>= [0]
= c_3(from#(X))
first#(X1,X2) = [0]
>= [0]
= c_4(X1,X2)
first#(0(),Z) = [0]
>= [0]
= c_5()
first#(s(X),cons(Y,Z)) = [0]
>= [0]
= c_6(Y,X,activate#(Z))
from#(X) = [0]
>= [0]
= c_7(X,X)
from#(X) = [0]
>= [0]
= c_8(X)
activate(X) = [1] X + [0]
>= [1] X + [0]
= X
activate(n__from(X)) = [1] X + [0]
>= [1] X + [0]
= from(X)
first(X1,X2) = [1] X1 + [1] X2 + [0]
>= [1] X1 + [1] X2 + [7]
= n__first(X1,X2)
first(0(),Z) = [1] Z + [0]
>= [0]
= nil()
first(s(X),cons(Y,Z)) = [1] X + [1] Z + [3]
>= [1] X + [1] Z + [10]
= cons(Y,n__first(X,activate(Z)))
from(X) = [1] X + [0]
>= [1] X + [3]
= cons(X,n__from(s(X)))
from(X) = [1] X + [0]
>= [1] X + [0]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 5: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
- Strict TRS:
activate(X) -> X
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
first#(0(),Z) -> c_5()
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(n__first(X1,X2)) -> first(X1,X2)
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [0]
p(cons) = [1] x2 + [0]
p(first) = [1] x1 + [1] x2 + [3]
p(from) = [1] x1 + [0]
p(n__first) = [1] x1 + [1] x2 + [3]
p(n__from) = [1] x1 + [0]
p(nil) = [0]
p(s) = [1] x1 + [0]
p(sel) = [0]
p(activate#) = [0]
p(first#) = [0]
p(from#) = [1]
p(sel#) = [1] x2 + [0]
p(c_1) = [0]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [0]
p(c_4) = [0]
p(c_5) = [0]
p(c_6) = [1] x3 + [0]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [0]
p(c_10) = [1] x1 + [0]
Following rules are strictly oriented:
from#(X) = [1]
> [0]
= c_7(X,X)
from#(X) = [1]
> [0]
= c_8(X)
first(0(),Z) = [1] Z + [3]
> [0]
= nil()
Following rules are (at-least) weakly oriented:
activate#(X) = [0]
>= [0]
= c_1(X)
activate#(n__first(X1,X2)) = [0]
>= [0]
= c_2(first#(X1,X2))
activate#(n__from(X)) = [0]
>= [1]
= c_3(from#(X))
first#(X1,X2) = [0]
>= [0]
= c_4(X1,X2)
first#(0(),Z) = [0]
>= [0]
= c_5()
first#(s(X),cons(Y,Z)) = [0]
>= [0]
= c_6(Y,X,activate#(Z))
sel#(0(),cons(X,Z)) = [1] Z + [0]
>= [0]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [1] Z + [0]
>= [1] Z + [0]
= c_10(sel#(X,activate(Z)))
activate(X) = [1] X + [0]
>= [1] X + [0]
= X
activate(n__first(X1,X2)) = [1] X1 + [1] X2 + [3]
>= [1] X1 + [1] X2 + [3]
= first(X1,X2)
activate(n__from(X)) = [1] X + [0]
>= [1] X + [0]
= from(X)
first(X1,X2) = [1] X1 + [1] X2 + [3]
>= [1] X1 + [1] X2 + [3]
= n__first(X1,X2)
first(s(X),cons(Y,Z)) = [1] X + [1] Z + [3]
>= [1] X + [1] Z + [3]
= cons(Y,n__first(X,activate(Z)))
from(X) = [1] X + [0]
>= [1] X + [0]
= cons(X,n__from(s(X)))
from(X) = [1] X + [0]
>= [1] X + [0]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 6: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
- Strict TRS:
activate(X) -> X
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
first#(0(),Z) -> c_5()
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(n__first(X1,X2)) -> first(X1,X2)
first(0(),Z) -> nil()
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [0]
p(cons) = [1] x2 + [0]
p(first) = [1] x1 + [1] x2 + [0]
p(from) = [0]
p(n__first) = [1] x1 + [1] x2 + [0]
p(n__from) = [0]
p(nil) = [0]
p(s) = [1] x1 + [1]
p(sel) = [0]
p(activate#) = [1] x1 + [0]
p(first#) = [1] x1 + [1] x2 + [0]
p(from#) = [0]
p(sel#) = [1] x2 + [0]
p(c_1) = [1] x1 + [0]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [0]
p(c_4) = [1] x1 + [1] x2 + [0]
p(c_5) = [0]
p(c_6) = [1] x2 + [1] x3 + [0]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [0]
p(c_10) = [1] x1 + [0]
Following rules are strictly oriented:
first#(s(X),cons(Y,Z)) = [1] X + [1] Z + [1]
> [1] X + [1] Z + [0]
= c_6(Y,X,activate#(Z))
first(s(X),cons(Y,Z)) = [1] X + [1] Z + [1]
> [1] X + [1] Z + [0]
= cons(Y,n__first(X,activate(Z)))
Following rules are (at-least) weakly oriented:
activate#(X) = [1] X + [0]
>= [1] X + [0]
= c_1(X)
activate#(n__first(X1,X2)) = [1] X1 + [1] X2 + [0]
>= [1] X1 + [1] X2 + [0]
= c_2(first#(X1,X2))
activate#(n__from(X)) = [0]
>= [0]
= c_3(from#(X))
first#(X1,X2) = [1] X1 + [1] X2 + [0]
>= [1] X1 + [1] X2 + [0]
= c_4(X1,X2)
first#(0(),Z) = [1] Z + [0]
>= [0]
= c_5()
from#(X) = [0]
>= [0]
= c_7(X,X)
from#(X) = [0]
>= [0]
= c_8(X)
sel#(0(),cons(X,Z)) = [1] Z + [0]
>= [0]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [1] Z + [0]
>= [1] Z + [0]
= c_10(sel#(X,activate(Z)))
activate(X) = [1] X + [0]
>= [1] X + [0]
= X
activate(n__first(X1,X2)) = [1] X1 + [1] X2 + [0]
>= [1] X1 + [1] X2 + [0]
= first(X1,X2)
activate(n__from(X)) = [0]
>= [0]
= from(X)
first(X1,X2) = [1] X1 + [1] X2 + [0]
>= [1] X1 + [1] X2 + [0]
= n__first(X1,X2)
first(0(),Z) = [1] Z + [0]
>= [0]
= nil()
from(X) = [0]
>= [0]
= cons(X,n__from(s(X)))
from(X) = [0]
>= [0]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 7: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
- Strict TRS:
activate(X) -> X
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(n__first(X1,X2)) -> first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [1]
p(cons) = [1] x2 + [3]
p(first) = [1] x2 + [2]
p(from) = [1] x1 + [0]
p(n__first) = [1] x2 + [1]
p(n__from) = [1] x1 + [7]
p(nil) = [1]
p(s) = [1] x1 + [1]
p(sel) = [2] x1 + [2]
p(activate#) = [1]
p(first#) = [5]
p(from#) = [0]
p(sel#) = [2] x1 + [1] x2 + [6]
p(c_1) = [0]
p(c_2) = [1] x1 + [1]
p(c_3) = [1] x1 + [0]
p(c_4) = [0]
p(c_5) = [5]
p(c_6) = [1] x3 + [4]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [0]
p(c_10) = [1] x1 + [4]
Following rules are strictly oriented:
activate#(X) = [1]
> [0]
= c_1(X)
activate#(n__from(X)) = [1]
> [0]
= c_3(from#(X))
first#(X1,X2) = [5]
> [0]
= c_4(X1,X2)
activate(X) = [1] X + [1]
> [1] X + [0]
= X
activate(n__from(X)) = [1] X + [8]
> [1] X + [0]
= from(X)
first(X1,X2) = [1] X2 + [2]
> [1] X2 + [1]
= n__first(X1,X2)
Following rules are (at-least) weakly oriented:
activate#(n__first(X1,X2)) = [1]
>= [6]
= c_2(first#(X1,X2))
first#(0(),Z) = [5]
>= [5]
= c_5()
first#(s(X),cons(Y,Z)) = [5]
>= [5]
= c_6(Y,X,activate#(Z))
from#(X) = [0]
>= [0]
= c_7(X,X)
from#(X) = [0]
>= [0]
= c_8(X)
sel#(0(),cons(X,Z)) = [1] Z + [9]
>= [0]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [2] X + [1] Z + [11]
>= [2] X + [1] Z + [11]
= c_10(sel#(X,activate(Z)))
activate(n__first(X1,X2)) = [1] X2 + [2]
>= [1] X2 + [2]
= first(X1,X2)
first(0(),Z) = [1] Z + [2]
>= [1]
= nil()
first(s(X),cons(Y,Z)) = [1] Z + [5]
>= [1] Z + [5]
= cons(Y,n__first(X,activate(Z)))
from(X) = [1] X + [0]
>= [1] X + [11]
= cons(X,n__from(s(X)))
from(X) = [1] X + [0]
>= [1] X + [7]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 8: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict DPs:
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
- Strict TRS:
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
activate#(X) -> c_1(X)
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [0]
p(cons) = [1] x2 + [4]
p(first) = [1] x2 + [5]
p(from) = [0]
p(n__first) = [1] x2 + [5]
p(n__from) = [0]
p(nil) = [5]
p(s) = [1] x1 + [0]
p(sel) = [0]
p(activate#) = [1] x1 + [2]
p(first#) = [1] x2 + [0]
p(from#) = [0]
p(sel#) = [1] x2 + [0]
p(c_1) = [1] x1 + [2]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [2]
p(c_4) = [1] x2 + [0]
p(c_5) = [0]
p(c_6) = [1] x3 + [2]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [4]
p(c_10) = [1] x1 + [0]
Following rules are strictly oriented:
activate#(n__first(X1,X2)) = [1] X2 + [7]
> [1] X2 + [0]
= c_2(first#(X1,X2))
Following rules are (at-least) weakly oriented:
activate#(X) = [1] X + [2]
>= [1] X + [2]
= c_1(X)
activate#(n__from(X)) = [2]
>= [2]
= c_3(from#(X))
first#(X1,X2) = [1] X2 + [0]
>= [1] X2 + [0]
= c_4(X1,X2)
first#(0(),Z) = [1] Z + [0]
>= [0]
= c_5()
first#(s(X),cons(Y,Z)) = [1] Z + [4]
>= [1] Z + [4]
= c_6(Y,X,activate#(Z))
from#(X) = [0]
>= [0]
= c_7(X,X)
from#(X) = [0]
>= [0]
= c_8(X)
sel#(0(),cons(X,Z)) = [1] Z + [4]
>= [4]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [1] Z + [4]
>= [1] Z + [0]
= c_10(sel#(X,activate(Z)))
activate(X) = [1] X + [0]
>= [1] X + [0]
= X
activate(n__first(X1,X2)) = [1] X2 + [5]
>= [1] X2 + [5]
= first(X1,X2)
activate(n__from(X)) = [0]
>= [0]
= from(X)
first(X1,X2) = [1] X2 + [5]
>= [1] X2 + [5]
= n__first(X1,X2)
first(0(),Z) = [1] Z + [5]
>= [5]
= nil()
first(s(X),cons(Y,Z)) = [1] Z + [9]
>= [1] Z + [9]
= cons(Y,n__first(X,activate(Z)))
from(X) = [0]
>= [4]
= cons(X,n__from(s(X)))
from(X) = [0]
>= [0]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 9: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict TRS:
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Weak DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [1]
p(cons) = [1] x1 + [1] x2 + [1]
p(first) = [1] x2 + [5]
p(from) = [1] x1 + [1]
p(n__first) = [1] x2 + [4]
p(n__from) = [1] x1 + [0]
p(nil) = [0]
p(s) = [6]
p(sel) = [1] x2 + [0]
p(activate#) = [5]
p(first#) = [5]
p(from#) = [1]
p(sel#) = [1] x2 + [5]
p(c_1) = [0]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [0]
p(c_4) = [0]
p(c_5) = [0]
p(c_6) = [1] x3 + [0]
p(c_7) = [1]
p(c_8) = [1]
p(c_9) = [6]
p(c_10) = [1] x1 + [0]
Following rules are strictly oriented:
from(X) = [1] X + [1]
> [1] X + [0]
= n__from(X)
Following rules are (at-least) weakly oriented:
activate#(X) = [5]
>= [0]
= c_1(X)
activate#(n__first(X1,X2)) = [5]
>= [5]
= c_2(first#(X1,X2))
activate#(n__from(X)) = [5]
>= [1]
= c_3(from#(X))
first#(X1,X2) = [5]
>= [0]
= c_4(X1,X2)
first#(0(),Z) = [5]
>= [0]
= c_5()
first#(s(X),cons(Y,Z)) = [5]
>= [5]
= c_6(Y,X,activate#(Z))
from#(X) = [1]
>= [1]
= c_7(X,X)
from#(X) = [1]
>= [1]
= c_8(X)
sel#(0(),cons(X,Z)) = [1] X + [1] Z + [6]
>= [6]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [1] Y + [1] Z + [6]
>= [1] Z + [6]
= c_10(sel#(X,activate(Z)))
activate(X) = [1] X + [1]
>= [1] X + [0]
= X
activate(n__first(X1,X2)) = [1] X2 + [5]
>= [1] X2 + [5]
= first(X1,X2)
activate(n__from(X)) = [1] X + [1]
>= [1] X + [1]
= from(X)
first(X1,X2) = [1] X2 + [5]
>= [1] X2 + [4]
= n__first(X1,X2)
first(0(),Z) = [1] Z + [5]
>= [0]
= nil()
first(s(X),cons(Y,Z)) = [1] Y + [1] Z + [6]
>= [1] Y + [1] Z + [6]
= cons(Y,n__first(X,activate(Z)))
from(X) = [1] X + [1]
>= [1] X + [7]
= cons(X,n__from(s(X)))
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 10: WeightGap WORST_CASE(?,O(n^1))
+ Considered Problem:
- Strict TRS:
from(X) -> cons(X,n__from(s(X)))
- Weak DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> n__from(X)
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
+ Details:
The weightgap principle applies using the following nonconstant growth matrix-interpretation:
We apply a matrix interpretation of kind constructor based matrix interpretation:
The following argument positions are considered usable:
uargs(activate) = {1},
uargs(cons) = {2},
uargs(first) = {2},
uargs(n__first) = {2},
uargs(sel#) = {2},
uargs(c_2) = {1},
uargs(c_3) = {1},
uargs(c_6) = {3},
uargs(c_10) = {1}
Following symbols are considered usable:
all
TcT has computed the following interpretation:
p(0) = [0]
p(activate) = [1] x1 + [3]
p(cons) = [1] x2 + [2]
p(first) = [1] x1 + [1] x2 + [4]
p(from) = [3]
p(n__first) = [1] x1 + [1] x2 + [4]
p(n__from) = [0]
p(nil) = [0]
p(s) = [1] x1 + [4]
p(sel) = [0]
p(activate#) = [0]
p(first#) = [0]
p(from#) = [0]
p(sel#) = [3] x1 + [1] x2 + [0]
p(c_1) = [0]
p(c_2) = [1] x1 + [0]
p(c_3) = [1] x1 + [0]
p(c_4) = [0]
p(c_5) = [0]
p(c_6) = [1] x3 + [0]
p(c_7) = [0]
p(c_8) = [0]
p(c_9) = [0]
p(c_10) = [1] x1 + [2]
Following rules are strictly oriented:
from(X) = [3]
> [2]
= cons(X,n__from(s(X)))
Following rules are (at-least) weakly oriented:
activate#(X) = [0]
>= [0]
= c_1(X)
activate#(n__first(X1,X2)) = [0]
>= [0]
= c_2(first#(X1,X2))
activate#(n__from(X)) = [0]
>= [0]
= c_3(from#(X))
first#(X1,X2) = [0]
>= [0]
= c_4(X1,X2)
first#(0(),Z) = [0]
>= [0]
= c_5()
first#(s(X),cons(Y,Z)) = [0]
>= [0]
= c_6(Y,X,activate#(Z))
from#(X) = [0]
>= [0]
= c_7(X,X)
from#(X) = [0]
>= [0]
= c_8(X)
sel#(0(),cons(X,Z)) = [1] Z + [2]
>= [0]
= c_9(X)
sel#(s(X),cons(Y,Z)) = [3] X + [1] Z + [14]
>= [3] X + [1] Z + [5]
= c_10(sel#(X,activate(Z)))
activate(X) = [1] X + [3]
>= [1] X + [0]
= X
activate(n__first(X1,X2)) = [1] X1 + [1] X2 + [7]
>= [1] X1 + [1] X2 + [4]
= first(X1,X2)
activate(n__from(X)) = [3]
>= [3]
= from(X)
first(X1,X2) = [1] X1 + [1] X2 + [4]
>= [1] X1 + [1] X2 + [4]
= n__first(X1,X2)
first(0(),Z) = [1] Z + [4]
>= [0]
= nil()
first(s(X),cons(Y,Z)) = [1] X + [1] Z + [10]
>= [1] X + [1] Z + [9]
= cons(Y,n__first(X,activate(Z)))
from(X) = [3]
>= [0]
= n__from(X)
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 11: EmptyProcessor WORST_CASE(?,O(1))
+ Considered Problem:
- Weak DPs:
activate#(X) -> c_1(X)
activate#(n__first(X1,X2)) -> c_2(first#(X1,X2))
activate#(n__from(X)) -> c_3(from#(X))
first#(X1,X2) -> c_4(X1,X2)
first#(0(),Z) -> c_5()
first#(s(X),cons(Y,Z)) -> c_6(Y,X,activate#(Z))
from#(X) -> c_7(X,X)
from#(X) -> c_8(X)
sel#(0(),cons(X,Z)) -> c_9(X)
sel#(s(X),cons(Y,Z)) -> c_10(sel#(X,activate(Z)))
- Weak TRS:
activate(X) -> X
activate(n__first(X1,X2)) -> first(X1,X2)
activate(n__from(X)) -> from(X)
first(X1,X2) -> n__first(X1,X2)
first(0(),Z) -> nil()
first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
from(X) -> cons(X,n__from(s(X)))
from(X) -> n__from(X)
- Signature:
{activate/1,first/2,from/1,sel/2,activate#/1,first#/2,from#/1,sel#/2} / {0/0,cons/2,n__first/2,n__from/1
,nil/0,s/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/3,c_7/2,c_8/1,c_9/1,c_10/1}
- Obligation:
runtime complexity wrt. defined symbols {activate#,first#,from#,sel#} and constructors {0,cons,n__first
,n__from,nil,s}
+ Applied Processor:
EmptyProcessor
+ Details:
The problem is already closed. The intended complexity is O(1).
WORST_CASE(?,O(n^1))